Cloud computing provides an economical, flexible, and scalable platform to deploy information technology (IT) services. It enables cloud customers to rent computing infrastructure on demand, scale up or down hardware resources elastically as needs change, and pay only for the resources consumed. Cloud platforms provide these benefits through efficient multiplexing and management of resources, attracting many customers to outsource their services to the cloud.
An enabler of cloud computing is virtualization technology. It provides flexible allocation of various resources, enforces isolation between applications sharing resources, and migrates applications transparently to tolerate failures and to harness under-utilized resources. Researchers have explored mechanisms to isolate and share key resources such as CPU, memory, network, and I/O bandwidth. However, a hardware resource—namely, the processor cache—has been overlooked.